Strings zijn onveranderlijk
Behoudsgezinde strings
Dat biedt enkele voordelen. Je kan de string manipuleren zonder dat de inhoud ervan verandert.
String file = "F:/Cursussen/ASP.NET/Ajax/MAFc/Ajax.js"; if (file.ToUpperInvariant().Substring(10, 12).EndsWith("EXE") { Console.WriteLine("Het bestand met de naam {0} is een uitvoerbaar bestand, file); } else { Console.WriteLine("Het bestand met de naam {0} is geen uitvoerbaar bestand, file); }
De ToUpperVariant methode retourneert een nieuwe string en wijzigt de karakters in file string niet. De nieuwe string wordt dan geïnspecteerd door EndsWidth. De twee tijdelijke strings die door ToUpperVariant en EndsWidth worden gecreëerd zijn geen lang leven beschoren en de 'garbage collector' zal het geheugen bij de eerst volgende ophaalronde weer vrij maken.
Maar elk voordeel heeft ook zijn nadeel. Als je een hele reeks stringbewerkingen moet uitvoeren worden een hele hoop string objecten op de heap gecreëerd waardoor de 'garbage collector' meerdere keren zal moeten uitrijden. In dat geval kan je dan beter de StringBuilder klasse of interpolatie gebruiken.
Oefening
- Plaats de code hierboven in een static methode met de naam StringsZijnOnveranderlijk in de klasse met de naam
WerkenMetGegevens
in de namespace met de naamLerenWerkenMetCSharp
. - Test deze methode in de
Main
methode in Program.cs.